Al leer las especificaciones de varias API de JavaScript, es posible que se encuentre con el requisito de que el documento esté "totalmente activo" antes de poder utilizarlas. Aquí hay una definición de lo que eso significa de las especificaciones: https://html.spec.whatwg.org/multipage/browsers.html#fully-active
Lo que no está claro es cómo saber si el documento está completamente activo o no. Como ejemplo, la API de WakeLock requiere que el documento esté completamente activo. Si el documento no está completamente activo, llamar a "WakeLock.request()" rechazará la promesa devuelta con un objeto de error "NotAllowedError". Sin embargo, hay otras razones por las que podría devolver un "Error no permitido" y no especifica el motivo en un caso determinado.
Entonces, ¿cómo puedo determinar de manera proactiva si un documento está completamente activo antes de intentar usar las API que lo requieren?
Hay una sección de la página: https://html.spec.whatwg.org/multipage/browsers.html#active-document
Se dice que un documento d está completamente activo cuando el contexto de exploración de d no es nulo, el documento activo del contexto de exploración de d es d y el contexto de exploración de d es un contexto de exploración de nivel superior o el documento contenedor del contexto de exploración de d está completamente activo.
Mirando a tu pregunta:
Entonces, ¿cómo puedo determinar de manera proactiva si un documento está completamente activo antes de intentar usar las API que lo requieren?
ampliemos las reglas:
Creo que eso se puede traducir a ese código javascript, pero no estoy 100% seguro de eso:
function isFullyActive(s /* self */) { return s.window !== null && s.document === s.window.document && (s.window.top === s.window || isFullyActive(s.window.parent)); } // you can use in this way on a top level javascript: isFullyActive(self)No encontré ninguna API/especificación que diga sobre un evento o método para verificar si un documento está completamente activo.